你能用科学记数法打印一个整数吗?

Can you print an integer in scientific notation?

我知道在 C 中,您可以分别使用“%e”和“%le”以科学记数法打印浮点数和双精度数,还可以使用“%d”打印整数。有没有办法使用科学计数法打印整数?我试过“%de”,但没有用。例如,我希望 6000000 打印为 6e+06.

Can you print an integer in scientific notation?

一个简单的方法是转换为 double 然后打印。 @Eric Postpischil

printf("%e\n", (double) some_int_type_object);

当整数精度和值超过 double - 通常约为 53 位时,这是不够的。

建议使用 long double 来处理更宽的整数类型。这仍然可能不符合精度要求。

printf("%Le\n", (long double) some_integer_type_object);

为了便携处理 64 位整数需要自定义代码。